
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
          
CREATE PROCEDURE [dbo].[SP_TASALD_EMPR_Q33]                              
/*-------------------------------------------------------------------------*/                                        
/*----- Empresa           : OFISIS S.A.                                ----*/                                        
/*----- Cliente           : OFISIS S.A.                                 ----*/                                        
/*----- Sistema           : Contabilidad                               ----*/                                        
/*----- Modulo            : Empresa                                    ----*/                                        
/*----- Programa          : Reporte Inventarios y Balances(DET - DOCU) ----*/                                  
/*----- Nombre            : SP_TASALD_EMPR_Q27                         ----*/                                        
/*----- Script            : TASALD_EMPR                                ----*/                                        
/*----- Desarrollado por  : Percy Garc?a                               ----*/                                        
/*----- Fecha             : 02/02/2004                                 ----*/                                        
/*----- Base de Datos     : SQL 2000                                   ----*/                                        
/*----- Version BD        :                                            ----*/                                        
/*-------------------------------------------------------------------------*/                                    
/*-------------------------------------------------------------------------*/                                
/*----- Modificado 1 por : PDGV                                       -----*/                                
/*----- Fecha Modifica   : 20/12/2008                                 -----*/                                
/*----- Detalle Modifica : correccion caso error BD filtro por unidad   -----*/                                
/*-------------------------------------------------------------------------*/                                
/*-------------------------------------------------------------------------*/                                         
/*----- Drop proc SP_TASALD_EMPR_Q27                                   ----*/                                        
/*----- Grant Execute on SP_TASALD_EMPR_Q27 to PUBLIC                  ----*/                                        
/*----- SP_TASALD_EMPR_Q33 '01', 1, NULL, 2008, 9, 'R', 'G', ' and tasald_empr.co_cnta_empr like "40%" '     ----*/                                        
/*-------------------------------------------------------------------------*/                                        
                                        
 @ISCO_EMPR       TD_VC_002,                                        
 @INNU_CNTB_EMPR  TD_IN_001,                                     
 @ISCO_UNID_CNTB  TD_VC_003,                                   
 @INNU_ANNO       TD_IN_004_ANNO,                                        
 @INNU_MESE       TD_IN_002_MESE,                                        
 @ISTI_REPO       TD_VC_001,                                 
 @ISTI_INFO       TD_VC_001,              
 @ISCA_WHER       TD_VC_255              
            
 As                      
-- Declaro Variables de Trabajo                                        
 Begin                                         
 Declare                                        
 @VSCO_CNTA_EMPR     TD_VC_020_CNTA,                                        
 @VSCO_CNTA_0002     TD_VC_020_CNTA,                                        
 @VSCO_CNTA_0003     TD_VC_020_CNTA,                                        
 @CSCO_CNTA_QUIE     TD_VC_020_CNTA,                                        
 @CSCO_CNTA_0003     TD_VC_020_CNTA,                                    
 @CSCO_CNTA_EMPR     TD_VC_020_CNTA,                                     
 @VSCO_CNTA_TEMP     TD_VC_020_CNTA,                  
 @CSDE_CNTA_EMPR     TD_VC_050,                                        
 @CSDE_CNTA_0002     TD_VC_050,                                        
 @CSDE_CNTA_0003     TD_VC_050,                                       
 @CNIM_MVTO_SALD   TD_NU_016_004,           
 @VNNU_QUIE_0002     TD_IN_001,                           
 @VNNU_QUIE_0003     TD_IN_001,                          
 @VNNU_QUIE_MAXI     TD_IN_001,                                        
 @VNIM_MVTO_ACTI     TD_NU_016_004,                                         
 @VNIM_MVTO_PASI     TD_NU_016_004,                                         
 @VNIM_MVTO_PATR     TD_NU_016_004,                                         
 @VNIM_DEBE_0002     TD_NU_016_004,                                         
 @VNIM_HABE_0002     TD_NU_016_004,                                         
 @VNIM_DEBE_0003     TD_NU_016_004,                                         
 @VNIM_HABE_0003     TD_NU_016_004,                                         
 @VNIM_UTIL          TD_NU_016_004,                                         
 @VSST_FLA1          TD_VC_001,                                         
 @VSST_FLA2          TD_VC_001,                                         
 @VSST_FLA3          TD_VC_001,                                         
 @VSST_FLA4          TD_VC_001,                                      
 @VNFA_VNTA_CNTA     TD_NU_015_006,                                      
 @VNFA_CAMB_CNTA     TD_NU_015_006,                                      
 @VSCO_MONE_UNID     TD_VC_003,                                      
 @VSCO_MONE          TD_VC_003,                                      
 @VNIM_DETA_ORIG     TD_NU_016_004,                                         
 @VNIM_DETA_CNTB     TD_NU_016_004,                                    
 @CSTI_CAMB          TD_VC_003,                                
 @VSCA_WHER_LOCA     TD_VC_255,                                
 @VSCA_WHER_LOC1     TD_VC_255,                                
 @VNIM_CNTA_ORDE     TD_NU_016_004           
-- TABLA TEMPORAL                                         
 Create Table #TWSALD_EMPR_Q33_1                                        
 (NU_QUIE_0001 Int NULL,                                         
 NU_QUIE_0002  Int NULL,                                         
 DE_QUIE_0002  Varchar(50) NULL,                                         
 CO_CNTA_QUIE  Varchar(20) NULL,                                         
 DE_CNTA_QUIE  Varchar(50) NULL,                                         
 CO_CNTA_EMPR  Varchar(20) NULL,                                         
 DE_CNTA_EMPR  Varchar(200) NULL,                                         
 IM_MVTO_TOTA  Numeric(16, 4) NULL,                                         
 DE_CNTA_0002  Varchar(50) NULL,                                         
 DE_CNTA_0003  Varchar(50) NULL,                                         
 CO_CNTA_0003  Varchar(20) NULL,                                         
 ST_VISU_0003  Varchar(1) NULL,                                         
 IM_DEBE       Numeric(16, 4) NULL,                                         
 IM_HABE       Numeric(16, 4) NULL,                                         
 IM_DEBE_0002  Numeric(16, 4) NULL,                                         
 IM_HABE_0002  Numeric(16, 4) NULL,                                         
 IM_DEBE_0003  Numeric(16, 4) NULL,                                         
 IM_HABE_0003  Numeric(16, 4) NULL,                                         
 TI_AUXI_EMPR  Varchar(1) NULL,                                         
 CO_AUXI_EMPR  Varchar(20) NULL,                    
 TI_DOID_SUNA  Varchar(3)    NULL,                    
 NU_DOCU_SUNA  Varchar(20) NULL,                                          
 NO_AUXI       Varchar(100) NULL,                                         
 FE_DOCU       DateTime NULL,                                         
 TI_DOCU       Varchar(3) NULL,                                         
 NU_DOCU       Varchar(20) NULL,        
 IM_DETA_ORIG  Numeric(16, 4) NULL,                                         
 IM_DETA_CNTB  Numeric(16, 4) NULL,                                         
 ST_VISU_DETA  Varchar(1) NULL,                     
 IM_TOTA_ACTI  Numeric(16, 4) NULL,                                         
 IM_TOTA_PASI  Numeric(16, 4) NULL,                                         
 IM_TOTA_PATR  Numeric(16, 4) NULL,                        
 CO_MONE       Varchar(3) NULL,                                        
 IM_UTIL       Numeric(16, 4) NULL,                                      
 FA_CAMB       Numeric(15,6) NULL, -- FACTOR DE CAMBIO DE CIERRE                                      
 FE_VENC       DateTime NULL ,        
FE_ASTO_CNTB       DateTime NULL ,    
DE_GLOS   Varchar(100) NULL )                                        
                                        
  -- Para obtener el mayor y el menor nivel de quiebre de la tabla de Parametros                                        
  Select @VNNU_QUIE_MAXI = NV_INFO_CNTA,                                        
  @VNNU_QUIE_0002 = Convert(Int, SubString(NV_QUIE_CNTA, 1, 2)),                                         
        @VNNU_QUIE_0003 = Convert(Int, SubString(NV_QUIE_CNTA, 3, 2))                                         
  From TMPARA_CONT                                        
  Where CO_EMPR =  @ISCO_EMPR                                        
                                        
If @ISTI_INFO = 'U'                
 Begin                            
  Select @VSCA_WHER_LOCA = ' And TASALD_EMPR.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" '                                
  Select @VSCA_WHER_LOC1 = ' And T1.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" '                                
 End            
Else            
 Begin                                               
  Select @VSCA_WHER_LOCA = ''                              
  Select @VSCA_WHER_LOC1 = ''                              
 End            
                          
-- OBTENGO LA MONEDA DE LA CONTABILIDAD                                    
  SELECT @VSCO_MONE_UNID = CO_MONE                              
  FROM TTCNTB_EMPR                                    
  WHERE CO_EMPR = @ISCO_EMPR                                    
  And NU_CNTB_EMPR = @INNU_CNTB_EMPR                          
                               
 -- Declaro Cursor Acumulado                                        
Exec('Declare CU_TASALD_EMPR_Q33_1 Cursor                              
  For                                         
  Select SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0002 + '),                                 
         SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0003 + '),                                 
         TASALD_EMPR.CO_CNTA_EMPR, Max(t2.DE_CNTA_EMPR),                                         
         Sum(TASALD_EMPR.IM_CARG_CNTB) - Sum(TASALD_EMPR.IM_ABON_CNTB),                                         
         Max(t3.DE_CNTA_EMPR), Max(t4.DE_CNTA_EMPR), MAX(t2.ST_CNTA_CAMB), Max(t2.CO_MONE)                                    
  From TASALD_EMPR, TMPLAN_EMPR t2, TMPLAN_EMPR t3, TMPLAN_EMPR t4              
  Where TASALD_EMPR.CO_EMPR =  "' + @ISCO_EMPR + '"                                 
     And TASALD_EMPR.NU_CNTB_EMPR = ' + @INNU_CNTB_EMPR + '                                
     And TASALD_EMPR.NU_ANNO = ' + @INNU_ANNO + '                                
     And TASALD_EMPR.NU_MESE <= ' + @INNU_MESE  + @ISCA_WHER + ' ' +              
     @VSCA_WHER_LOCA + '                                 
     And DataLength(TASALD_EMPR.CO_CNTA_EMPR) = ' + @VNNU_QUIE_MAXI + '                                
     And SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, 2) < "60"                                
     And TASALD_EMPR.TI_AUXI_EMPR IS NULL                                        
     And TASALD_EMPR.CO_AUXI_EMPR IS NULL                                        
     And TASALD_EMPR.CO_ORDE_SERV IS NULL                                        
     And t2.CO_EMPR = TASALD_EMPR.CO_EMPR                                        
     And t2.CO_CNTA_EMPR = TASALD_EMPR.CO_CNTA_EMPR                  
     And t3.CO_EMPR = TASALD_EMPR.CO_EMPR                                        
     And t3.CO_CNTA_EMPR = SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0002 + ')                    
     And t4.CO_EMPR = TASALD_EMPR.CO_EMPR                                        
     And t4.CO_CNTA_EMPR = SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0003 + ')                                        
     Group by SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0002 + '), SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0003 + '), TASALD_EMPR.CO_CNTA_EMPR                                 
     Order by 1, 2, 3 ')                                
                                        
-- Inicializo Variables                                        
    Select @CSCO_CNTA_QUIE = NULL                                         
    Select @CSCO_CNTA_EMPR = NULL                               
    Select @CSDE_CNTA_EMPR = NULL                                         
    Select @CNIM_MVTO_SALD = NULL                                         
    Select @VNNU_QUIE_MAXI = 0                                         
    Select @VNNU_QUIE_0002 = 0                                         
    Select @VNNU_QUIE_MAXI = 0                                         
    Select @VNIM_MVTO_ACTI = 0                                         
    Select @VNIM_MVTO_PASI = 0                                         
    Select @VNIM_MVTO_PATR = 0                                         
    Select @VNIM_UTIL      = 0                             
    Select @VNIM_CNTA_ORDE = 0                                                 
    Select @VSST_FLA1      = 'S'                                         
    Select @VSST_FLA2      = 'S'                                         
    Select @VSST_FLA3      = 'S'                                     
    Select @VSST_FLA4      = 'S'                                         
                                        
/*-- OPCION ACUMULADA --*/                                        
  Open CU_TASALD_EMPR_Q33_1                                         
  Fetch CU_TASALD_EMPR_Q33_1 Into @CSCO_CNTA_QUIE, @CSCO_CNTA_0003, @CSCO_CNTA_EMPR,                                            
     @CSDE_CNTA_EMPR, @CNIM_MVTO_SALD, @CSDE_CNTA_0002, @CSDE_CNTA_0003,  @CSTI_CAMB, @VSCO_MONE                                                 
                                        
  -- SETEO INICIAL                                       
  Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                         
  Select @VSCO_CNTA_0003 = @CSCO_CNTA_0003                                         
  Select @VNIM_DEBE_0002 = 0                                         
  Select @VNIM_DEBE_0003 = 0                                         
  Select @VNIM_HABE_0002 = 0                                         
  Select @VNIM_CNTA_ORDE = 0                                         
  Select @VSCO_CNTA_EMPR = ''                                         
                                      
  While @@Fetch_status = 0                                        
   Begin                                         
                                      
  -- Inserto los Cuentas de Orden como quiebre 0                                           
  /* -- INICIO CUENTAS DE ORDEN --*/                                        
  If  SubString(@CSCO_CNTA_QUIE, 1, 1) = '0'                                         
   Begin  ---- (A)                                        
    Insert into #TWSALD_EMPR_Q33_1                                        
     (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                         
      CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                        
     Values(1, 0, NULL,  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR, @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N', 'N')                             
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                        
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                         
     Begin                                         
     If (@CNIM_MVTO_SALD <> 0 )                                         
        Begin                            
        Select @VNIM_DEBE_0002 = @VNIM_DEBE_0002 + @CNIM_MVTO_SALD                                         
        Select @VNIM_CNTA_ORDE = @VNIM_CNTA_ORDE + @CNIM_MVTO_SALD                                         
        End                                        
     End                                  
  Else                                         
     Begin                                         
     Update #TWSALD_EMPR_Q33_1                               
     Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                         
     IM_HABE_0002 = NULL                                         
     Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
                                        
     Select @VNIM_DEBE_0002 = @CNIM_MVTO_SALD                                         
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                      
     End                                         
                                        
  End                                         
  /* -- FIN CUENTAS DE ORDEN --*/                                        
                                        
  -- Inserto los Activos como quiebre 1                                         
                
  /* -- INICIO CUENTAS DE ACTIVO --*/                                        
  If SubString(@CSCO_CNTA_QUIE, 1, 1) > '0' And @CSCO_CNTA_QUIE < '40'                                         
  Begin /* INICIO CTAS ACTIVO */                                            
     -- ACTUALIZA ULTIMA CUENTA ORDEN                                        
                                        
     If @VSST_FLA1 = 'S'                                        
     Begin               
       Update #TWSALD_EMPR_Q33_1                                         
       Set IM_DEBE_0002 = @VNIM_DEBE_0002,                        
       IM_HABE_0002 = NULL                                         
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
     End                                         
                                        
    Insert Into #TWSALD_EMPR_Q33_1                                        
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                         
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                        
    Values(1, 1, 'ACTIVO',  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR,                                         
     @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N', 'N')                                         
                              
                              
    -- Acumulo el total para los Activos                                        
  If (@CNIM_MVTO_SALD  <> 0)                                         
    Begin                                         
     Select @VNIM_MVTO_ACTI =  @VNIM_MVTO_ACTI +  @CNIM_MVTO_SALD                                         
    End                                        
                                        
    Select @VSCO_CNTA_EMPR = 'X'                                        
    Select @VSCO_CNTA_EMPR = CO_CNTA_EMPR                                         
    From TTCNTA_DOCU                                
    Where CO_EMPR = @ISCO_EMPR                                         
    And CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                         
                                  
  If @VSCO_CNTA_EMPR != 'X'                                         
    Begin                       
  Exec('                                
    Insert into #TWSALD_EMPR_Q33_1                                        
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003,          DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, TI_AUXI_EMPR, CO_AUXI_EMPR,TI_DOID_SUNA,NU_DOCU_SUNA, NO_AUXI, FE_DOCU, FE_VENC,  
     FE_ASTO_CNTB    ,  TI_DOCU, NU_DOCU,     
     CO_MONE, IM_DETA_ORIG, IM_DETA_CNTB, ST_VISU_DETA,DE_GLOS)                                        
     Select 1, 1, "ACTIVO", "'+ @CSCO_CNTA_QUIE +'", "'+ @CSCO_CNTA_EMPR +'", NULL, NULL, "'+ @CSCO_CNTA_0003+'",                                 
     "'+ @CSDE_CNTA_0002 +'", "'+ @CSDE_CNTA_0003 +'", "N", t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, MAX(T2.CO_DOCU_SUNA),MAX(t2.NU_DOCU_SUNA),Max(t2.NO_AUXI),                                 
     Max(t1.FE_DOCU), Max(t1.FE_DOCU_VENC),Max(t1.FE_ASTO_CNTB), t1.TI_DOCU, t1.NU_DOCU, Max(t1.CO_MONE),                                
     IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_ORIG), 2))), 0) -                                 
     IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_ORIG), 2))), 0), 0.00, "S"   ,T1.DE_GLOS      
     From TXMVTO_CNTB t1                     
    Left Outer Join TMAUXI_EMPR t2                       
    On t2.CO_EMPR = t1.CO_EMPR                                 
       And t2.TI_AUXI_EMPR = t1.TI_AUXI_EMPR                                 
       And t2.CO_AUXI_EMPR = t1.CO_AUXI_EMPR                      
     Where t1.CO_EMPR = "'+ @ISCO_EMPR +'"                                
     And t1.NU_CNTB_EMPR = '+ @INNU_CNTB_EMPR +                                
     @VSCA_WHER_LOC1 + '                       
     And t1.NU_ANNO = '+ @INNU_ANNO +'                                
     And t1.NU_MESE <= '+ @INNU_MESE + '                                    
     And t1.CO_CNTA_EMPR = "' + @CSCO_CNTA_EMPR + '"                                
     And t1.SI_MVTO_CNTB = "APR"                              
     Group By t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU     ,t1.DE_GLOS                         
     Having (IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_ORIG), 2))), 0) -                                 
     IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_ORIG), 2))), 0)) <> 0 ')                                
                                    
  End  --  /*--- FIN  If @VSCO_CNTA_EMPR != 'X' ---*/                                        
                            
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                        
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                         
     Begin                                       
     If (@CNIM_MVTO_SALD <> 0)                                         
  Begin                                         
        Select @VNIM_DEBE_0002 = @VNIM_DEBE_0002 + @CNIM_MVTO_SALD                                         
        End                                         
     End                                         
  Else                                         
   Begin                                         
     If @VSST_FLA1 = 'N'                                         
     Begin                                         
     Update #TWSALD_EMPR_Q33_1                                         
     Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                         
     IM_HABE_0002 = NULL                                         
     Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
     End                        
                                        
     Select @VNIM_DEBE_0002 = @CNIM_MVTO_SALD                                         
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                         
   End                                        
                                        
  Select @VSST_FLA1 = 'N'                                         
                                  
  End   /* -- FIN CUENTAS DE ACTIVO --*/                                        
                                        
                                        
  /* -- INICIO CUENTAS DE PASIVO --*/                                        
                                        
  -- Inserto los Pasivos como quiebre 2                                        
  If  @CSCO_CNTA_QUIE > '39' and  @CSCO_CNTA_QUIE < '50'                                         
  Begin                                    
   -- ACTUALIZA DEBE DE LA ULTIMA CUENTA DE ACTIVO                                        
   If @VSST_FLA2 = 'S'                                         
     Begin                                         
     Update #TWSALD_EMPR_Q33_1                                         
     Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                         
     IM_HABE_0002 = NULL                                         
     Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
     End                                         
                                        
    Insert into #TWSALD_EMPR_Q33_1                                        
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,             
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                        
    Values(2, 1, 'PASIVO',  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR,                                         
    @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N','N')                                         
                                        
   -- Acumulo el total para los Pasivos                                        
  If (@CNIM_MVTO_SALD  <> 0)                                         
    Begin                                         
      Select @VNIM_MVTO_PASI =  @VNIM_MVTO_PASI +  @CNIM_MVTO_SALD                                         
    End                                        
                                       
    Select @VSCO_CNTA_EMPR = 'X'                                         
    Select @VSCO_CNTA_EMPR = CO_CNTA_EMPR                                         
    From TTCNTA_DOCU                                         
    Where CO_EMPR = @ISCO_EMPR                                         
    And CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                         
                                  
-- DETALLE DE LAS CUENTAS DE PASIVO                    
  If @VSCO_CNTA_EMPR != 'X'                                         
    Begin                                      
    Exec( 'Insert into #TWSALD_EMPR_Q33_1                                        
     (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                         
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003,                                         
     TI_AUXI_EMPR, CO_AUXI_EMPR,TI_DOID_SUNA,NU_DOCU_SUNA, NO_AUXI, FE_DOCU, FE_VENC,FE_ASTO_CNTB, TI_DOCU, NU_DOCU, CO_MONE, IM_DETA_ORIG, IM_DETA_CNTB, ST_VISU_DETA,DE_GLOS)                                        
     Select 2, 1, "PASIVO", "'+ @CSCO_CNTA_QUIE +'", "'+ @CSCO_CNTA_EMPR +'", NULL, NULL, "'+ @CSCO_CNTA_0003 +'",                                 
     "'+ @CSDE_CNTA_0002 +'", "'+ @CSDE_CNTA_0003 +'", "N", t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR,MAX(T2.CO_DOCU_SUNA),MAX(t2.NU_DOCU_SUNA), Max(t2.NO_AUXI),                                 
 Max(t1.FE_DOCU), Max(t1.FE_DOCU_VENC),MAX(FE_ASTO_CNTB), t1.TI_DOCU, t1.NU_DOCU, Max(t1.CO_MONE),                                          
     IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_ORIG), 2))), 0) -                                          
     IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_ORIG), 2))), 0), 0.00, "S"    , T1.DE_GLOS        
     From TXMVTO_CNTB t1                      
    Left Outer Join TMAUXI_EMPR t2                       
    On t2.CO_EMPR = t1.CO_EMPR                                         
    And t2.TI_AUXI_EMPR = t1.TI_AUXI_EMPR                                         
       And t2.CO_AUXI_EMPR = t1.CO_AUXI_EMPR                                        
     Where t1.CO_EMPR = "'+ @ISCO_EMPR +'"                                
     And t1.NU_CNTB_EMPR = '+ @INNU_CNTB_EMPR +                      
     @VSCA_WHER_LOC1 + '                        
     And t1.NU_ANNO = '+ @INNU_ANNO +'                                
     And t1.NU_MESE <= '+ @INNU_MESE +'                                
     And t1.CO_CNTA_EMPR = "'+ @CSCO_CNTA_EMPR +'"                        
     And t1.SI_MVTO_CNTB = "APR"                              
     Group By t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU , t1.DE_GLOS                                        
     Having (IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_ORIG), 2))), 0) -                                          
             IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_ORIG), 2))), 0)) <> 0 ')                                
                                    
    End  --  /*--- FIN  If @VSCO_CNTA_EMPR != 'X' ---*/                                        
                                        
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                        
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                         
    Begin                                         
     If (@CNIM_MVTO_SALD  <> 0)                                         
       Begin                                         
        Select @VNIM_HABE_0002 = @VNIM_HABE_0002 + @CNIM_MVTO_SALD                                         
       End                                         
    End                                         
  Else                                         
    Begin                                         
     If @VSST_FLA2 = 'N'                                         
     Begin                                           
       Update #TWSALD_EMPR_Q33_1                                         
       Set IM_DEBE_0002 = NULL,                                         
       IM_HABE_0002 = @VNIM_HABE_0002            
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
     End                                        
     Select @VNIM_HABE_0002 = @CNIM_MVTO_SALD                                         
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                         
    End                                         
                                        
  Select @VSST_FLA2 = 'N'                                         
  End                                         
                                        
  /* -- FIN CUENTAS DE PASIVO --*/                                        
                                        
  /* -- INICIO CUENTAS DE PATRIMONIO --*/                                        
                                        
  -- Inserto el Patrimonio como quiebre 3                                        
  If  @CSCO_CNTA_QUIE > '49'                                         
    Begin                                         
     Select @VSST_FLA4 = 'N'                                         
                                        
     -- ACTUALIZA HABER DE LA ULTIMA CUENTA PASIVO                                        
     If @VSST_FLA3 = 'S'                                         
     Begin                                                
       Update #TWSALD_EMPR_Q33_1                                         
       Set IM_DEBE_0002 = NULL,                                         
       IM_HABE_0002 = @VNIM_HABE_0002                                         
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
     End                                         
                     
    Insert into #TWSALD_EMPR_Q33_1                                        
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                              
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                        
    Values(3, 1, 'PATRIMONIO',  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR,                                         
    @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N', 'N')                                         
                                        
   -- Acumulo el total para el Patrimonio                                        
  If (@CNIM_MVTO_SALD  <> 0)                                         
    Begin                  
      Select @VNIM_MVTO_PATR =  @VNIM_MVTO_PATR + @CNIM_MVTO_SALD                                         
    End                                        
                                        
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                        
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                Begin                           
     If (@CNIM_MVTO_SALD  <> 0)                                         
       Begin                                         
        Select @VNIM_HABE_0002 = @VNIM_HABE_0002 + @CNIM_MVTO_SALD                                         
       End                                         
   End                                         
  Else                          
   Begin                                         
    If @VSST_FLA3 = 'N'                                         
      Begin                                         
       Update #TWSALD_EMPR_Q33_1                                         
       Set IM_DEBE_0002 = NULL,                                         
       IM_HABE_0002 = @VNIM_HABE_0002                                         
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
      End                                        
     Select @VNIM_HABE_0002 = @CNIM_MVTO_SALD                                         
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                         
    End                                        
                                        
  Select @VSST_FLA3 = 'N'                                         
  End                                        
                                        
  /* -- FIN CUENTAS DE PATRIMONIO --*/                                        
        If SubString(@CSCO_CNTA_EMPR,1, 2) = '59'                                         
        Begin                                         
  Select @VNIM_UTIL = @VNIM_UTIL + @CNIM_MVTO_SALD                                         
        End                                         
                                      
 -- OBTENGO LA MONEDA DE LA CUENTA                                    
/*   Select @VSCO_MONE = CO_MONE                                      
   from TMPLAN_ANNO                          
   Where CO_EMPR = @ISCO_EMPR                                    
   And   CO_CNTA_EMPR = @CSCO_CNTA_EMPR                  */                          
                          
/*----------- Para obtener el factor de cierre ------*/                                      
--- SOLO SACA FACTOR DE CIERRE PARA CASO MONEDA CTA != MONEDA CNTB                        
If @VSCO_MONE != @VSCO_MONE_UNID                                    
Begin                         
IF @CSTI_CAMB = 'COM'                
  Begin                         
  SELECT @VNFA_CAMB_CNTA = FA_CAMB_CMPR                                    
  FROM TCFACT_CIER                                      
  WHERE CO_MONE = @VSCO_MONE                                      
  AND NU_ANNO = @INNU_ANNO                                      
  AND NU_MESE = @INNU_MESE                                      
  End                         
ELSE                          
  Begin                                    
  SELECT @VNFA_CAMB_CNTA = FA_CAMB_VNTA                                    
  FROM TCFACT_CIER                                      
 WHERE CO_MONE = @VSCO_MONE                                      
  AND NU_ANNO = @INNU_ANNO                                      
  AND NU_MESE = @INNU_MESE                                      
  End                         
                                  
-- PARA EL CASO DEL MES 0                                   
If @INNU_MESE  = 0                                  
 Begin                                  
 IF @CSTI_CAMB = 'COM'                                    
  Begin                         
  SELECT @VNFA_CAMB_CNTA = FA_CAMB_CMPR                                    
  FROM TCFACT_CIER                                      
  WHERE CO_MONE = @VSCO_MONE                                      
  AND NU_ANNO = @INNU_ANNO - 1                                      
  AND NU_MESE = 12               
  End                         
ELSE                          
  Begin                                    
  SELECT @VNFA_CAMB_CNTA = FA_CAMB_VNTA                                    
  FROM TCFACT_CIER                                      
  WHERE CO_MONE = @VSCO_MONE                                      
  AND NU_ANNO = @INNU_ANNO - 1                                     
  AND NU_MESE = 12                  
  End                         
End                           
End                                  
                          
  UPDATE #TWSALD_EMPR_Q33_1                                      
  SET FA_CAMB = (Case When @VSCO_MONE != @VSCO_MONE_UNID Then @VNFA_CAMB_CNTA                          
                 When @VSCO_MONE = @VSCO_MONE_UNID Then NULL                          
                 Else NULL End ),                                      
  IM_DETA_CNTB = (Case When @VSCO_MONE != @VSCO_MONE_UNID Then                           
                 DBO.FU_CONV_MONE(@VSCO_MONE, @VSCO_MONE_UNID, @CSTI_CAMB, @VNFA_CAMB_CNTA, IM_DETA_ORIG, @INNU_ANNO, @INNU_MESE )--FA_CAMB* IM_DETA_ORIG              
                 When @VSCO_MONE = @VSCO_MONE_UNID Then IM_DETA_ORIG                          
                 Else NULL End)                             
  WHERE CO_CNTA_EMPR = @CSCO_CNTA_EMPR                          
--  And ST_VISU_DETA = 'S'                          
                                         
     Fetch CU_TASALD_EMPR_Q33_1 Into @CSCO_CNTA_QUIE, @CSCO_CNTA_0003, @CSCO_CNTA_EMPR,                                            
     @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSDE_CNTA_0002, @CSDE_CNTA_0003, @CSTI_CAMB, @VSCO_MONE                              
                                        
--  End Loop                                          
  End /*FIN WHILE*/                                         
                                        
                                        
/*****************/                                        
  If @VSST_FLA4 = 'N'                                         
  Begin                                         
  Update #TWSALD_EMPR_Q33_1                                         
       Set IM_DEBE_0002 = NULL,                                         
       IM_HABE_0002 = @VNIM_HABE_0002                                         
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                        
  End                                        
                                        
  Close CU_TASALD_EMPR_Q33_1                                         
  Deallocate CU_TASALD_EMPR_Q33_1                                         
                                        
--  End If  /*-- FIN ISTI_REPO = 'A' --*/                                        
                      
---- CASO SALDO DE LAS CUENTAS DE ORDEN ES DEUDOR (> 0) ENTONCES SE SUMA AL ACTIVO                          
---- CASO SALDO DE LAS CUENTAS DE ORDEN ES ACREEDOR (< 0) ENTONCES SE SUMA AL PASIVO                          
                           
 If @VNIM_CNTA_ORDE > 0                           
    Begin   
    Select @VNIM_MVTO_ACTI = @VNIM_MVTO_ACTI + @VNIM_CNTA_ORDE                          
   End                           
 If @VNIM_CNTA_ORDE < 0                           
    Begin                           
  Select @VNIM_MVTO_PASI = @VNIM_MVTO_PASI + @VNIM_CNTA_ORDE                          
    End                           
                            
  Update #TWSALD_EMPR_Q33_1                                        
  Set IM_TOTA_ACTI = @VNIM_MVTO_ACTI,                                        
  IM_TOTA_PASI = @VNIM_MVTO_PASI,                                        
  IM_TOTA_PATR = @VNIM_MVTO_PATR,                                        
  IM_UTIL = @VNIM_UTIL                                        
                                    
 -- QRP                                         
 If @ISTI_REPO = 'R'                                         
 Select t1.NU_QUIE_0001, t1.NU_QUIE_0002,                                        
 t1.DE_QUIE_0002, t1.CO_CNTA_QUIE, t1.CO_CNTA_0003, t1.DE_CNTA_0002, t1.DE_CNTA_0003,                      
 t1.CO_CNTA_EMPR, t1.DE_CNTA_EMPR,                                        
 t1.IM_MVTO_TOTA, ST_VISU_0003,           
t1.IM_DEBE_0002, t1.IM_HABE_0002,           
t1.IM_DEBE_0003, t1.IM_HABE_0003,                                        
 t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR,T1.TI_DOID_SUNA,T1.NU_DOCU_SUNA, t1.NO_AUXI, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU,                                        
 t1.CO_MONE, t1.IM_DETA_ORIG, t1.IM_DETA_CNTB, t1.ST_VISU_DETA,                             
 t1.IM_TOTA_ACTI, t1.IM_TOTA_PASI, t1.IM_TOTA_PATR, t1.IM_UTIL, t1.FE_VENC ,                                     
 ROUND(t1.FA_CAMB,3)        ,t1.FE_ASTO_CNTB      ,T1.DE_GLOS                    
 From #TWSALD_EMPR_Q33_1 t1                                        
 Where (t1.IM_MVTO_TOTA <> 0 Or t1.IM_MVTO_TOTA Is NULL)                                   
 Order by t1.DE_QUIE_0002, t1.CO_CNTA_QUIE, t1.CO_CNTA_0003, t1.CO_CNTA_EMPR, t1.NU_QUIE_0001, t1.NU_QUIE_0002,             
 t1.ST_VISU_DETA,            
 --t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU            
 T1.TI_DOID_SUNA,T1.NU_DOCU_SUNA, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU            
                                    
                                     
 -- TABLA                                        
 If @ISTI_REPO = 'T'                                         
 Select t1.DE_QUIE_0002 AS TITULO, t1.CO_CNTA_QUIE AS CUENTA_2DIGITOS, t1.CO_CNTA_0003 AS CUENTA_3DIGITOS,                                        
 t1.DE_CNTA_0002 AS DESC_CUENTA_2DIGITOS, t1.DE_CNTA_0003 AS DESC_CUENTA_3DIGITOS,                                        
 t1.CO_CNTA_EMPR AS CUENTA, t1.DE_CNTA_EMPR DES_CUENTA,                                        
 t1.IM_MVTO_TOTA SALDO_CUENTA, t1.IM_DEBE_0002 AS DEBE_2DIGITOS, t1.IM_HABE_0002 AS HABER_2DIGITOS, t1.IM_DEBE_0003 AS DEBE_3DIGITOS, t1.IM_HABE_0003 AS HABER_3DIGITOS,                                        
 t1.TI_AUXI_EMPR AS TIPO_AUXILIAR, t1.CO_AUXI_EMPR AS COD_AUXILIAR,T1.TI_DOID_SUNA AS TIP_DOCU_SUNA,T1.NU_DOCU_SUNA AS NUM_DOCU_SUNA, t1.NO_AUXI NOMBRE_AUXILIAR, t1.FE_DOCU FECHA_DOCU, t1.FE_VENC FECHA_VENC, t1.TI_DOCU TIPO_DOCU, t1.NU_DOCU NUMERO_DOCU, 
  
    
      
        
          
            
            
              
 t1.CO_MONE AS MONEDA, t1.IM_DETA_ORIG AS  IMPORTE_DETALLE_ORIGEN, t1.IM_DETA_CNTB AS IMPORTE_DETALLE_CONTABLE,                                        
 t1.IM_TOTA_ACTI AS ACTIVO, t1.IM_TOTA_PASI AS PASIVO, t1.IM_TOTA_PATR AS PATRIMONIO, t1.IM_UTIL AS UTILIDAD,                                      
 t1.FA_CAMB AS FACTOR_CAMBIO                                        
 From #TWSALD_EMPR_Q33_1 t1                                        
 Where (t1.IM_MVTO_TOTA <> 0 Or t1.IM_MVTO_TOTA Is NULL)                                        
 Order by t1.NU_QUIE_0001, t1.NU_QUIE_0002, t1.CO_CNTA_QUIE, t1.CO_CNTA_0003, t1.CO_CNTA_EMPR, t1.ST_VISU_DETA,                                        
-- t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU                                        
 T1.TI_DOID_SUNA,T1.NU_DOCU_SUNA, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU            
End   -- FIN AS BEGIN                   
          
          
/*----------------------------- Fin ---------------------------------*/                      
                  
                
              
GO
